// Package tool
// @Description:工具类
package tool

import (
	"github.com/joho/godotenv"
	"log"
	"os"
	"strconv"
	"time"
)

// GetEnvDefault
// @Description:获取env配置
// @param str
// @param defaultString
// @return string
func GetEnvDefault(str string, defaultString string) string {
	err := godotenv.Load()
	if err != nil {
		log.Fatal("Error loading .env file")
	}
	val := os.Getenv(str)
	if val != "" {
		return val
	}
	return defaultString
}

// Now
// @Description:获取当前时间 Y-s-d H:i:s
// @return string
func Now() string {
	return time.Now().Format("2006-01-02 15:04:05")
}

// GetType
// @Description:获取数据类型
// @param i
// @return string
func GetType(i interface{}) string {
	switch i.(type) {
	case string:
		return "string"
	case int:
		return "int"
	case byte:
		return "byte"
	}

	return ""
}

// BetweenInt
// @Description:判断是否在范围之间
// @param start
// @param end
// @param val
// @return bool
func BetweenInt(start, end, val int) bool {
	if val >= start && val <= end {
		return true
	}
	return false
}

// BetweenString
// @Description: 判断是否在范围之间
// @param startStr
// @param endStr
// @param ValStr
// @return bool
func BetweenString(startStr, endStr, ValStr string) bool {
	startInt, err1 := strconv.Atoi(startStr)
	endInt, err2 := strconv.Atoi(endStr)
	ValInt, err3 := strconv.Atoi(ValStr)
	if err1 != nil || err2 != nil || err3 != nil {
		return false
	}
	return BetweenInt(startInt, endInt, ValInt)
}
